<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <script type="text/javascript">
      var description                                                           //因为使用了FCKeditor，除了extjs本身管理，还需要额外赋值，要使用全局变量
      Ext.onReady(function(){
        var trainRouterId = <%= params[:trainRouterId]%>
        //时间选择模块
        var DeadLineDateTime = new Ext.ux.form.DateTimeField({
          fieldLabel: '计划检修开工时间',
          anchor: '70%',                    //在容器中的时候，自动按照容器百分比进行调整，会覆盖宽度的属性
          name: 'begin_time',
          id: 'begin_time',
          invalidText: "您输入的日期格式不对，正确格式为2010-01-18",
          allowBlank: false,
          blankText: "完工时间必须选择",
          emptyText: '请选择时间...'
        });

        var trainDS = new Ext.data.Store({
          proxy:new Ext.data.HttpProxy({url:'/train/getTrainsForCombo'}),
          reader:new Ext.data.JsonReader({
            totalProperty: 'totalProperty',
            root: 'train'
          }, [
            {name:'sn'},                            //用作后面的displayField:
            {name:'id'}                                //用作后面的valueField:
          ])
        });
        var trainIdCombo = new Ext.form.ComboBox({  //配合上面的departmentDS，完成动态生成的下拉框
          store: trainDS,
          hiddenName:'train_id',            //显示时：这里写后台传送过来的字段，一旦和valueField相等，就进行显示。不相等为空。
          displayField:'sn',              //store里面的值，用于显示在表面上的值
          valueField:'id',                  //store里面的值，和display联动
          typeAhead: true,
          allowBlank:false,
          disable:true,
          minChars:1,
          readOnly:true,
          anchor: '70%',                    //在容器中的时候，自动按照容器百分比进行调整，会覆盖宽度的属性
          mode: 'remote',
          fieldLabel:'列车选择',
          forceSelection: true,
          triggerAction: 'all',
          emptyText:'请选择列车.....',
          selectOnFocus:true
        });

        var editTrainRouterForm = new Ext.form.FormPanel({
          width:780,
          labelAlign: 'top',
          url:'/traintask/update',
          buttonAlign:'center',
          bodyStyle: 'padding:5px',
          labelWidth:100,
          frame: true,
          reader:new Ext.data.JsonReader({
          },[
            {name:'id'},
            {name:'sn'},
            {name:'description'},
            {name:'begin_time'},
            {name:'train_id'}
          ]),
          items:[{
              xtype:'textfield',
              fieldLabel:'检修任务编号',
              allowBlank:false,
              anchor: '95%',
              blankText:'项目名称不能为空！',
              name:'sn'
            },
            {
              xtype: 'hidden',
              name:  'id',
              value: trainRouterId
            }
            ,{
              layout:'column',
              items:[{
                  columnWidth:.5,
                  layout:'form',
                  items:[trainIdCombo]
                },{
                  columnWidth:.5,
                  layout:'form',
                  items:[DeadLineDateTime]
                }
              ]
            }
            ,{
              xtype:'textarea',
              fieldLabel:'项目备注',
              id:'description',
              width:755,
              height:325,
              allowBlank:true,
              name: 'description'
            }
          ],
          buttons:[{
              text:'确认修改',
              handler: function(){
                Ext.get('description').dom.value=editorInstance.GetXHTML( true );         //获取fckeditor内容赋给textarea
                if (editTrainRouterForm.form.isValid()) {
              editTrainRouterForm.form.submit({
                method: 'post',
                success: function(result, response){
                  if (response.result.info == "success") {
                    editTrainRouterWin.destroy();
                  } else {
                    Ext.MessageBox.alert('消息', response.result.info);
                  }
                },
                failure: function(result, response){
                  Ext.MessageBox.alert('提示', result.responseText);
                }
              });
            } else {
            Ext.MessageBox.alert('错误提示', '请按要求填写必输选项.');
            }
          }
        },{
          text:'取消',
          handler:function(){
            editTrainRouterWin.destroy();
          }
        }]
    });

    editTrainRouterForm.form.load({
      url: '/traintask/edit?id=' + trainRouterId,
      waitMsg : '正在载入数据...',
      success: function(form, action){
        var beginTime = action.result.data.begin_time;                         //load的时候，取得的值，由此语法即可使用，这里取出了deadline
        beginTime = beginTime.substr(0,19);
        DeadLineDateTime.setValue(beginTime);
        description = action.result.data.description                        //取得备注的值，并赋值到变量description上
      },
      failure: function(form, action){
        Ext.MessageBox.alert('提示信息', '信息加载失败');
      }
    });

    trainIdCombo.store.reload();

    editTrainRouterForm.render('editTrainTaskForm');

    var oFCKeditor = new FCKeditor('description',755,325) ;                 //注意，要放在渲染之后，否则会报错。因为Fckeditor是在页面渲染完毕后又添加的。
    oFCKeditor.BasePath = "/javascripts/fckeditor/" ;                       //根目录是Public，下面的javascripts/...
    oFCKeditor.ToolbarSet = 'Default';
    oFCKeditor.ReplaceTextarea() ;
  })

  var editorInstance;                                                       //注意，要放在FormPanel外面。
  function FCKeditor_OnComplete(instance) {                                 //FCKEditor初始化完成将调用此方法：@param {Object} editorInstance
    editorInstance=instance;                                                //将对象复制到自己定义的变量之上
    setTimeout("editorInstance.SetHTML(description)",800);                  //等待一秒后进行赋值，防止复制到旧的值
  };

    </script>
  </head>
  <body>
    <div id="editTrainTaskForm"></div>
  </body>
</html>